package com.mm.cloth.model.response;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

/**
 * API统一响应类
 * @param <T> 响应数据类型
 */
public class ApiResponse<T> {
    
    @SerializedName("code")
    @Expose
    private int code;           // 状态码，200成功，非200失败
    
    @SerializedName("message")
    @Expose
    private String message;     // 提示信息

    @Expose
    @SerializedName("data")
    private T data;             // 响应数据
    
    public ApiResponse() {
    }
    
    public ApiResponse(int code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }
    
    public int getCode() {
        return code;
    }
    
    public void setCode(int code) {
        this.code = code;
    }
    
    public String getMessage() {
        return message;
    }
    
    public void setMessage(String message) {
        this.message = message;
    }
    
    public T getData() {
        return data;
    }
    
    /**
     * 获取实际数据
     * @return 返回封装的数据
     */
    public T getRealData() {
        return data;
    }
    
    public void setData(T data) {
        this.data = data;
    }
    
    /**
     * 判断请求是否成功
     * @return 是否成功
     */
    public boolean isSuccess() {
        return code == 200;
    }
}